#pragma once
#include "BoardTile.h"
#include "GameTurnResult.h"
#include "StatusBar.h"
#include "../lib3dw/Animation.h"

namespace Dicewars
{
	typedef enum AttackResult {DefenderWon, Remis, AttackerWon};

	class Player
	{
		public:
			Player(unsigned int playerNumber, PlayerType type, GLfloat r, GLfloat g, GLfloat b);
			~Player();
			unsigned int GetNumber();
			GLfloat* GetColor();
			GLfloat* GetCursorColor();
			GLfloat* GetHighlightColor();
			GameTurnResult* PerformMove(BoardTile* start, BoardTile* end);
			GameTurnResult* PerformAttack(BoardTile* start, BoardTile* end);
			GameStatus GetAttackerResult() const;
			GameStatus GetDefenderResult() const;
			void ResetResults();
			PlayerType GetPlayerType();
			
		private:
			PlayerType playerType;
			unsigned int number;
			GLfloat* color;
			GLfloat* cursorColor;
			GLfloat* highlightColor;
			GameStatus attackResult;
			GameStatus defendResult;
	};
}